home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / trueSpace 7.6 / tS761B8Std.exe / {app} / Scripts / MaterialEditor / Bricks / Compound / Anisotropic.Brick.xml < prev    next >
Extensible Markup Language  |  2008-06-10  |  2KB  |  31 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <ME_BRICK GUID="{B542549D-A7C4-4ecd-A05F-CEEC55DB1B24}" Name="RtUAnisotropic" GUIName="Anisotropic lighting" Description="Simple anisotropic lighting model">
  3.     <ME_BRICK_INPUTPARAM GUID="{18A3BE1F-B06B-4e24-9A81-B5C02C1572B4}" Name="DiffuseColor" Type="RtFloat4"/>
  4.     <ME_BRICK_INPUTPARAM GUID="{EC8BBFBF-CED9-4979-A288-B79D45F1F8FB}" Name="NormalVector" Type="RtFloat3"/>
  5.     <ME_BRICK_INPUTPARAM GUID="{30797B7B-55CA-45b0-AF2C-2220A3086FD6}" Name="EyeDirection" Type="RtFloat3"/>
  6.     <ME_BRICK_INPUTPARAM GUID="{F62BC546-CA8F-4831-8856-14DD78DDF921}" Name="LightDirection" Type="RtFloat3"/>
  7.     <ME_BRICK_INPUTPARAM GUID="{21BE3070-AF57-48e0-91CB-6219A44F67EB}" Name="LightColor" Type="RtFloat4"/>
  8.     <ME_BRICK_INPUTPARAM GUID="{09235FB9-B994-413c-9B40-8BCCAC3B0D70}" Name="AnisotropicMap" Type="RtSampler2D"/>
  9.     <ME_BRICK_OUTPUTPARAM GUID="{F977DD6D-21E6-4ccb-879A-6C28E2360260}" Name="ResultColor" Type="RtFloat4"/>
  10.     <ME_BRICK_CODE><![CDATA[
  11.     void RtUAnisotropic(in RtFloat4 DiffuseColor,
  12.                   in RtFloat3 NormalVector, in RtFloat3 EyeDirection, in RtFloat3 LightDirection, 
  13.                   in RtFloat4 LightColor, in RtSampler2D AnisotropicMap,
  14.                   out RtFloat4 ResultColor)
  15.     {
  16.         ResultColor = RtFloat4(0.0f, 0.0f, 0.0f, 0.0f);
  17.         RtFloat3 vNormal = NormalVector;
  18.         RtFloat3 vLightDir = LightDirection;
  19.         RtFloat3 vEye = EyeDirection;
  20.         RtFloat DiffuseCoef = rtx_Saturate(rtx_Dot(vNormal, vLightDir));
  21.         RtFloat3 vHalf = rtx_CubeNormalize(vLightDir + vEye);
  22.         RtFloat SpecularCoef = rtx_Saturate(rtx_Dot(vNormal, vHalf));
  23.         
  24.         float fAnisoAmount = tex2D(AnisotropicMap, float2(DiffuseCoef, SpecularCoef)).r;
  25.         
  26.         ResultColor = DiffuseColor * DiffuseCoef * fAnisoAmount * 4.0f * LightColor;
  27.         ResultColor.a = DiffuseColor.a;
  28.     }
  29.     ]]></ME_BRICK_CODE>
  30. </ME_BRICK>
  31.